■文章編8      ┏━━━━━━━━━━━━━━━━━━━━━━━━┓      ┃ ┃      ┃ OSとは何か ┃      ┃ ┃      ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ ■OSとは何か,正統派編 次は,「OSとは何か」という大ネタに挑戦してみましょう。いちおう,最 初は定義めいた部分から解説することにします(このあたりがいまいち悪に徹 しきれない,僕の良心的なところですね)。 OS(Operating System)とは,一般に「基本ソフトウェア」などと訳さ れ(訳になってないぞ),「コンピュータのハードウェア,ソフトウェアを有 効に活用するための基本的かつ総合的管理を行うソフトウェア」のことであり ます。・・・・う〜ん,少しも説明になっていませんね。 総合的というくらいですから,その仕事は多岐にわたり,そのコマゴマを全 部説明するのは大変なことです。また,すべてのOSがその条件を全部満たし ているわけでもありません。「マルチタスクもメモリ管理もちゃんとやってく れないMS-DOSなんぞは,OSじゃなくてDOS(Disk Operating Sys tem)でしかないよ」と言う方もおられます。それでも,まあ,パソコン上の OSといえば現在ではMS-DOSが標準ということになっているんですね (異論がある方もおられるでしょう。僕もそうですが,「標準」とはそんなも のです)。 ちなみに,OSにはほかにどんなものがあるかといえば,ワークステーショ ン上の汎用OSとして著名なUNIX(ユニックス,と読む),パソコン上で は懐かしいところでCP/M(シーピーエム),FLEX(フレックス),F Mシリーズの8ビットには縁の深いOS-9(オーエスナイン),TOWNS で標準添付なのがTownsOS(タウンズオーエス),最近,再度話題の前線に 復帰してきたのがOS/2(オーエスツー),一時の大騒ぎはどこへ行ったの やらがTRON(トロン),といったところでしょうか。ちなみにMS-Wind ows(エムエスウィンドウズ)やTownsOSは,OSというよりはMS-DOS の合体変形ロボ,機能拡張版といったオモムキです。 さて,本題に入りましょう。OSなるソフトウェアは,そも,どんな仕事を してくれるんでしょうか。 まず,読者のみなさんの多くがそうであるようなアプリユーザーの側から見 ると,OSは,アプリケーションプログラムを実行する際のメニューにあたる 働きをしてくれます。TownsMENUのように画面上にラーメン屋のメニュー ふうに各種アプリを表示してくれるものももちろんですが,MS-DOSのコ マンドラインだって,こちらがお願いした(キーボード入力した)プログラム を選んで実行してくれるという点では同様です。そして,メニューの働きとい うと一見単純そうでも,OSはそもそもプログラムやデータを収めるディスク のフォーマットを規定し,そこにプログラムやデータを保存し,実行するプロ グラムや読み出されるデータが選ばれればそのためにメモリは確保するわ,デ ィスクから読み込むわ,トラブればエラーメッセージを発行するわ,などなど 忙しく働いてくれているのです。 次に,プログラムを組む側から見ると,OSは,「開発の効率化を支えてく れる環境」であり,かつ「便利なサブルーチン群」を提供してくれるものとな ります。前者の開発の効率化というのは,シェルとかバッチ処理とか階層ディ レクトリ管理とかFEP(フロントエンドプロセッサ)とかそのあたりのこと で,ちょっとここには書ききれないのですが,後者の「便利なサブルーチン群」 については少し説明してみましょう。 実は,OSは自分の中にさまざまな小間物プログラム(サブルーチン)をか かえています。そして,プログラマが何かプログラムを作る場合,アセンブラ でゼロから何もかもこしらえるとなると大変ですが,たとえば「指定された文 字を画面に表示するルーチン」「ディスク中のファイル名を指定するとその内 容をメモリに展開するルーチン」「画面の指定された領域に線を引くルーチン」 などがOSに準備されていて,プログラムから「OSさん,これこれの仕事を よろしく」と頼むだけですむならば,ずいぶん楽に開発が進みます。また,そ れは,同じOSが走るマシンなら,CPUそのものやディスク回りのICが多 少違っても同じプログラム(ないし同じプログラムの作り方)でよい,という ことを意味します。この,OSのかかえているサブルーチン群のことを,一般 に「システムコール」といいます(「ファンクションコール」や「SVC」 (Super Viser Call)などともいう)。 さて,OSには,まだまだいろいろな働きがあります。たとえば,「資源の 管理」という言葉で説明されるもの。これはそもそもOSというものが登場し た最大の理由だったのですが,「コンピュータは高いし手間がかかるので,C PUの働く時間はもちろん,その周辺にあるものは少しでも上手く利用しない とかなわない」というという考え方からきたものです。たとえば, ・CPUそのもの ・キーボードなどの入力装置 ・ディスプレイやプリンタなどの出力装置 ・メモリやディスクなどの記憶装置 ・扱われるプログラム ・扱われるデータ ・扱われるプログラマ(!!) などなど,要するにコンピュータ本体はもちろん,それに付随するものをすべ て効率よく管理し,上手く使おうという働きです。たとえば,複数のお仕事 (ジョブ,というかプロセスというか,やっぱりタスクですね)をいっぺんに 実行してみせる「マルチタスク」なんていうものは,そういう考えの元に現れ てきました。 ちなみに,マルチタスクという場合,単に1台のコンピュータのメモリ上で 複数のプログラムが動作する,というだけですむほど単純なものではありませ ん。CPUの働く時間を細かく分け,複数の仕事を順番に割り振っていくTS S(Time Sharing System )処理はもちろん,たとえば,もし2つのプロ グラムが同時にメモリの同じ領域にアクセスしたら・・・・あるいは,2つのプロ グラムが同時にディスクの同じ領域にアクセスしたら・・・・などという衝突を前 もって防ぎ,かつプログラムの実行速度をあまり損なわない,というのは,非 常に複雑かつ面倒な処理なのです。 ■再度,OSとは何か もう,頭ン中ぐじゃぐじゃ,という方,ごめんなさい。僕の表現が下手なの です。 少し,整理しましょう・・・・と,書きたいところですが,OSというソフトウ ェアは実際複雑怪奇なシロモノなので,何度書いてもやっぱり理解しづらいだ ろうと思われます。ということで少し趣向を変えてみましょう。驚かないで聞 いてください,実は, 「OSは,シュフなのです」 シュフといえば無論「主婦」のことですが,「主夫」ということもあり得る のでカタカナにしておきます(実際,僕の敬愛するジョン・レノンは,ある時 期,アルバム作成やライブ活動を放棄して子育てや家事にいそしんだそうです。 ・・・・その間ヨーコ・オノは何をしてたんでしょうかね?)。 さてさて,シュフというのは,大家族のオカーサンとこの場合言い代えても いいのですが,一家の基本ソフトウェア(ハードウェア?)だと,強引に書い てしまうわけです,ここでは。 シュフというものは,縁の下の力持ちというか,決して実行ファイルではあ りません。会社に出て給料を稼いでくるわけではないのです。山にシバカリに 行ったりマンションを転がしたり脱税したり損失補填したり完封したり三振し たり割合ヒマな大学に入ったのをよいことにパソコン雑誌編集部に出入りした りおめかしして代官山でボーイハントしたり,等々という家庭外活動は,個々 のアプリケーションソフトウェアの仕事です。で,シュフは,たとえばその個 々のアプリをサポートする,部屋割り,掃除,洗濯,買物,食事作りなどなど をしてくれるわけですね。 個々のアプリが「さてこれから出かけるので,朝食を作り,食後はその食器 を洗い,洗濯をし,部屋の掃除をし,帰りには夕飯の買物をし・・・・」などとい うことをやっていたのでは,1日が何時間あっても足りません。そういうのは, 一家の大黒柱(?)たるシュフがどかどかまとめてやってくれるとたいへん効率 がよいわけです。 OSのメニュー機能も,人数の多い家庭で必要に応じて家族を起こして回る シュフの姿を思い起こせば,なんとなく理解できるかと思います。「A男,早 く起きなさい」「B子,いつまでもパジャマでぐずぐずしてるんじゃありませ ん」「C太,鞄にちゃんと教科書は入れたの」「D美,ちょっとE郎の着替え を手伝ってあげて」・・・・。実際に外に出かける(実行される)のは各アプリな のですが,シュフはパソコンでいえばメモリ管理やCPUの実働時間管理をし, それぞれがきちんと出かけられるよう計らい,さらにトラブルが発生すれば迅 速にそれに対応してくれます。 しかも,「明日は特別な会議なので,Yシャツはタンスの上の段にしまった いつものより上等なものを着ていかねばならないのだ」というときは「おい, アレ」,「日曜は早朝から部長とともに接待ゴルフに出るのだが,その際のゴ ルフウェアは恥ずかしいほど安物でも困るが部長よりいい品では困るので,い つものスラックスにアイロンをかけておいてほしい」というときは「おい,コ レ」ですべてが通じる。「システムコール」とは,まさしくそういった感じで すね(ほんとかな?)。 なお,シュフの中にはスグレ者もいて,夕飯を作りながら洗濯をし,かつ子 供の遊び相手もしてみせるタイプがいます。これをマルチタスクといいますが, 何もかも同時にやり始めたあげく,夕飯時にはまだ何も片づいてない,できて いない,という場合もあります。これは,マルチタスクという仕様が悪いので はなく,たまたまそのシュフには荷が重かった,ということですね。そんなと きは,あわてずさわがず,シングルユーザー,シングルタスクのシュフである ことだなぁ,とため息をついて諦めるか,そうでなければシュフを若いのに取 り替えるしかありません(後者の場合,最近は膨大なメモリやHDを必要とす るシュフが多いため,かなりの出費を覚悟しておきましょう)。 おや,お宅のシュフは,1タスクも満足に処理できない。それはシュフとし て・・・・いやいや,一部であれ,読者の気持ちを逆なでするような発言はしない よう心がけるのが雑誌ライターの最低のマナーというもの。ここまでにしてお きましょうか。